#pragma once
#include "Renderer.h"
namespace mini
{
	class CParticleRenderer : public CRenderer
	{
		friend class CRendererFactory;
		friend class CRendererEngine;
	private:
		CParticleRenderer(CDevice* pDevice);

	public:
		virtual ~CParticleRenderer();

	private:
		virtual void processRenderNode(CRenderNode* pRenderNode) override;
		std::map<CShaderUnit*, std::list<CMeshUnit*> >			mRenderUnits;
		std::map<CShaderUnit*, std::list<CMeshUnit*> >			mAlphaRenderUnits;
		std::map<INT32, std::pair< CShaderUnit*, CMeshUnit*> >	mZbufferOffRenderUnits;
		std::list<CBoundBox* >	mRendererBoundBox;
	};
}